﻿using System.Collections.ObjectModel;
namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    [System.Xml.Serialization.XmlRootAttribute("TopoComplex", Namespace = "http://www.opengis.net/gml", IsNullable = false)]
    public class TopoComplexType : AbstractTopologyType
    {
        /// <remarks/>
        public TopoComplexType()
        {
            this.IsMaximal = false;
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("maximalComplex")]
        public TopoComplexMemberType MaximalComplex { get; set; }

        private Collection<TopoComplexMemberType> _superComplex = new Collection<TopoComplexMemberType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("superComplex")]
        public Collection<TopoComplexMemberType> SuperComplex 
        {
            get
            {
                return this._superComplex;
            }
        }

        private Collection<TopoComplexMemberType> _subComplex = new Collection<TopoComplexMemberType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("subComplex")]
        public Collection<TopoComplexMemberType> SubComplex 
        {
            get
            {
                return this._subComplex;
            }
        }

        private Collection<TopoPrimitiveMemberType> _topoPrimitiveMember = new Collection<TopoPrimitiveMemberType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("topoPrimitiveMember")]
        public Collection<TopoPrimitiveMemberType> TopoPrimitiveMember 
        {
            get
            {
                return this._topoPrimitiveMember;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("topoPrimitiveMembers")]
        public TopoPrimitiveArrayAssociationType TopoPrimitiveMembers { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("isMaximal")]
        [System.ComponentModel.DefaultValueAttribute(false)]
        public bool IsMaximal { get; set; }
    }
}
